﻿////////////////////////////////////////////////////////////////////////////
//                                                                        //
//                       Copyright (c) 2000-2023                          //
//                              Wang Hua                                  //
//               National University of Defense Technology                //
//                                                                        //
////////////////////////////////////////////////////////////////////////////

// AsNLEquation.h
//
//////////////////////////////////////////////////////////////////////
/// @file
/// @brief	非线性方程求解函数，头文件

#if !defined(ASNLEQUATION_H_)
#define ASNLEQUATION_H_



#include "AsVector.h"
#include "AsMatrix.h"
#include "AsRightFunction.h"





//====================================================================
//
// Grouping: One dimension Nonlinear equation.
//
//====================================================================


//***************************************************************************
/// 非线性方程求解的二分法
/// Using bisection, find the root of a function func known to lie between x1 and 
///   x2. The root will be refined until its accuracy is +-xacc.
/// @Author	Wang Hua
/// @Date	2006.2.14
/// @Input
/// @Param	func
/// @Param	x1		包含根的区间的一个端点
/// @Param	x2		包含根的区间的另一个端点
/// @Param	xacc	精度，区间小于+-acc时返回
/// @Output
/// @Param	root	返回计算得到的根
/// @Return	是否计算成功
//***************************************************************************
bool	AsNLEBisection (
			const CFunc11& func, 
			double x1, 
			double x2, 
			double xacc, 
			double& root);




#endif // !defined(_ASNLEQUATION_H_)
